Dynamic clock change circuit

ABSTRACT

A clock change circuit includes enabling a clock change frequency to be accepted while a system is active and clock frequencies are at a low period. The circuit includes generating an enabling signal representing a window of time in which a frequency change is accomplished.

BACKGROUND

The present invention relates to a dynamic clock change circuit.

The clock speed of a processor is a factor that determines the computing power of a computer, measured in megahertz (MHz) or gigahertz (GHz). More specifically, clock speed refers to the number of pulses per second generated by an oscillator that sets the speed for the processor. Typically, a manufacturer decides on what speed to stamp on the processor based on factors, such as, core, design, and capabilities of the processor itself, the thermal stability and characteristics of the processor and the most advantageous market conditions.

The actual clock speed of a processor is set by the motherboard. In the past there have been two ways to set the clock speed of the processor. First, using hardware jumpers, one can change the jumpers to get different combinations of basic BUS speeds and multipliers.

Second, using software “jumpers” or “jumper free” motherboards, one can change the clock speed (and the core voltage) of a processor using software embedded in the motherboard BIOS.

In either method, a system needs to be reset to enable a clock frequency change.

SUMMARY

The present invention provides methods and apparatus, including computer program products, for a dynamic clock change circuit.

In one aspect, the invention features a circuit including a counter for receipt of a master clock signal, a multiplexer for receipt of an output of the counter, the multiplexer outputting a clock frequency to a system clock, a flip flop for generating an enable signal corresponding to a low frequency period of the master clock signal and for enabling a clock change request signal, and a NOR gate disposed between the counter and the flip flop.

In embodiments, the counter can be a synchronous counter. The synchronous counter can be a 5-bit counter. The circuit can include a NOR gate disposed between the counter and the flip flop. The output of the counter can be a frequency signal divided by an integer value. The integer value can be selected from a group consisting of 2, 4, 8, 16 and 32.

In another aspect, the invention features a clock frequency change circuit including a synchronous counter for receipt of a master clock signal, a first multiplexer for receipt of an output of the counter, the first multiplexer outputting a clock frequency to a first system clock, a second multiplexer for receipt of the output of the counter, the second multiplexer outputting a clock frequency to a second system clock, and a flip flop for generating an enable signal corresponding to a low frequency period of the master clock signal and for enabling a clock change request signal.

In embodiments, the synchronous counter can be a 5-bit counter. The circuit can include a NOR gate disposed between the counter and the flip flop. The output of the counter can be a frequency signal divided by an integer value. The integer value can be selected from a group consisting of 2, 4, 8, 16 and 32.

In another aspect, the invention features a method of changing a clock frequency of a system clock including receiving a clock frequency change request signal, generating an enabling signal in a flip flop corresponding to a low period of clock signals entering a multiplexer, receiving a master clock signal in the flip flop, and sending the clock frequency change signal to the multiplexer at the time indicated by the enabling signal.

In embodiments, the counter can be a synchronous counter. The synchronous counter can be a 5-bit counter. The method can include outputting a signal from the multiplexer to a system clock.

The invention can be implemented to realize one or more of the following advantages. The circuit enables clock frequency changes without requiring a system reset.

The circuit enables clock speed changes to correspond to different periods of time, such as one speed during the day and another speed during the evening; this saves power.

The circuit enables system clock frequency changes on processors to meet varying performance requirements.

The circuit enables “glitch-free” clock frequency changes by delaying frequency changes to a period before all system clocks transition from 0 to 1.

The circuit can be used with counters of various sizes depending on a desired clock frequency range.

One implementation of the invention provides all of the above advantages.

Details of one or more implementations are set forth in the description below. Other features, aspects, and advantages may be apparent from the description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary clock change circuit.

FIG. 2 is an exemplary frequency diagram.

FIG. 3 is a flow diagram.

Like reference numbers and designations in the various drawings indicate like

DETAILED DESCRIPTION

As shown in FIG. 1, an exemplary clock change circuit 10 includes a counter 12, two multiplexers 14, 16, a NOR gate 18 and a flip flop 20. In the circuit 10, the counter 12 is a 5-bit synchronous counter. Other size counters can be used in alternate implementations to achieve a desire clock frequency range. Each of the output signals 22, 24, 26, 28, 30 from the counter 12 are divided by two before entering one of the multiplexers 14, 16. In this example, output signals 22, 24, 26, 28 are divided by two before entering MUX 14, while output signals 24, 26, 28, 30 are divided by two before entering MUX 16. An output of MUX 14 goes to a system clock 30 and an output of MUX 16 goes to a system clock 32.

Circuit 10 includes a master clock signal 34 and a clock change request signal 36. The clock change request signal 36 can be set through software.

Selection of the clock desired frequency 22, 24, 26, 28, 30, divided by two, from the desired MUX 14, 16, is controlled by an output of a “clock change actual” signal 38 from the flip flop 20. Timing of making the selection is accomplished when all five clock frequencies 22, 24, 26, 28, 30 are at a low period, at which point the circuit 10 generates an enable (EN) signal 40. The EN signal 40 opens a small window of time to allow the master clock signal 34 to update the states of clock change actual signal 38. The clock change actual signal 38 selects which clock, i.e., the four clock signals 22,24,26,28 or the four signals 24, 26, 28, 30, going into each of the two MUXs 14, 16, to clock through the selected MUX 14, 16.

As shown in FIG. 2, an exemplary timing diagram 50 corresponding to the circuit 10 includes a timing of the master clock 52, the master clock divided by two 54, the master clock divided by four 56, the master clock divided by eight 57, the master clock divided by sixteen 58, and the master clock divided by thirty-two 59. The timing diagram 50 includes timing of the clock change enable signal 60, the clock change request signal 62, the clock change actual signal 64, the system clock 66 and system clock 68. The window between when the system clocks 66, 68 frequencies decrease (70) and when the system clocks 66, 68 frequencies increase (72) provides circuit 10's opportunity to change the system clock's frequency.

As shown in FIG. 3, a process 100 includes receiving (102) a clock frequency change request signal. Process 100 generates (104) an enabling signal in a flip flop corresponding to a low period of clock signals entering a multiplexer. Process 100 receives (106) a master clock signal in the flip flop. Process 100 sends (108) the clock frequency change signal to the multiplexer at the time indicated by the enabling signal.

Although only a few embodiments have been described in detail above, other modifications are possible. Actions do not require the particular order described, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous. 

1. A circuit comprising: a counter for receipt of a master clock signal; a multiplexer for receipt of an output of the counter, the multiplexer outputting a clock frequency to a system clock; a flip flop for generating an enable signal corresponding to a low frequency period of the master clock signal and for enabling a clock change request signal; and a NOR gate disposed between the counter and the flip flop.
 2. The circuit of claim 1 wherein the counter is a synchronous counter.
 3. The circuit of claim 2 wherein the synchronous counter is a 5-bit counter.
 4. The circuit of claim 1 further comprising a NOR gate disposed between the counter and the flip flop.
 5. The circuit of claim 1 wherein the output of the counter is a frequency signal is divided by an integer value.
 6. The circuit of claim 5 wherein the integer value is selected from a group consisting of 2, 4, 8, 16 and
 32. 7. A clock frequency change circuit comprising: a synchronous counter for receipt of a master clock signal; a first multiplexer for receipt of an output of the counter, the first multiplexer outputting a clock frequency to a first system clock; a second multiplexer for receipt of the output of the counter, the second multiplexer outputting a clock frequency to a second system clock; and a flip flop for generating an enable signal corresponding to a low frequency period of the master clock signal and for enabling a clock change request signal.
 8. The circuit of claim 7 wherein the synchronous counter is a 5-bit counter.
 9. The circuit of claim 7 further comprising a NOR gate disposed between the counter and the flip flop.
 10. The circuit of claim 7 wherein the output of the counter is a frequency signal is divided by an integer value.
 11. The circuit of claim 10 wherein the integer value is selected from a group consisting of 2, 4, 8, 16 and
 32. 12. A method of changing a clock frequency of a system clock comprising: receiving a clock frequency change request signal; generating an enabling signal in a flip flop corresponding to a low period of clock signals entering a multiplexer; receiving a master clock signal in the flip flop; and sending the clock frequency change signal to the multiplexer at the time indicated by the enabling signal.
 13. The circuit of claim 12 wherein the counter is a synchronous counter.
 14. The circuit of claim 13 wherein the synchronous counter is a 5-bit counter.
 15. The method of claim 12 further comprising outputting a signal from the multiplexer to a system clock. 